package tau.adx.common.contracts;

import lombok.AllArgsConstructor;
import lombok.Data;
import tau.adx.common.adn.AdNetwork;
import tau.adx.common.advertisers.Advertiser;

/**
 * Monthly contract is an agreement between and {@link Advertiser} and and
 * {@link AdNetwork}. The contract determines how an {@link AdNetwork} should
 * behave in the given period.
 * 
 * @author greenwald
 * 
 */
@Data
@AllArgsConstructor
public class MonthlyContract {

	/**
	 * {@link MonthlyContract}'s {@link AdNetwork}.
	 */
	private AdNetwork adNetwork;
	/**
	 * {@link MonthlyContract}'s {@link Advertiser}.
	 */
	private Advertiser advertiser;
	/**
	 * Max daily spending limit.
	 */
	private int dailyLimit;
	/**
	 * Monthly budget.
	 */
	private int monthlyBudget;

}
